package net;

public class Demo1_Net {

    /**
     * 网络
     *   将分散在不同位置的网络终端通过介质连接起来，实现资源共享和通讯
     * ip地址
     *   每个终端在网络中的一个唯一的标识
     *   正常情况下你的IP地址必须是全球唯一，但是ip资源不够使用子网还实现
     *   保证在当前所在的局域网中ip唯一就可以
     *   格式：1字节.1字节.1字节.1字节
     *        8bit,8bit,8bit,8bit
     *        00000000,00000000,00000000,00000000 - 11111111,11111111,11111111,11111111
     *        0.0.0.0 - 255.255.255.255
     * 端口(port)
     *   标识一个终端设备中某个程序的唯一标识
     *   每个设备最多可以有 65535 个端口
     *   端口是两个字节标识的数字，最大范围 0000 0000 0000 0000 - 1111 1111 1111 1111
     * 通讯协议
     *   通讯双方共同遵守的规则
     *   常用的协议
     *     TCP协议
     *     UDP协议
     * TCP(Transmission Control Protocol) 传输控制协议
     *   基于连接的可靠的协议 基于字节流模式
     *   相对来说 TCP占用的系统资源要较多，传输的时间较长
     *   对数据要求较高或者1对1 需要使用TCP
     *
     *   连接需要三次握手
     *     A -> B 发送信息：我要跟你建立连接
     *     B -> A 确认应答(ack),回信息给A：你的连接请求我收到了
     *     A -> B 确认应答(ack),回信息给B：你的信息我收到了
     *     如果一致确认下去就是无休止的，所以取前三次的确认信息来判定A和B连接成功，可以发送信息
     *   断开需要四次挥手
     *     A -> B 发送断开请求
     *     B -> A 收到断开请求，允许断开
     *     B -> A 发送断开请求
     *     A -> B 收到断开请求，允许断开
     *
     *  类
     *    Socket(套接字)
     *      本身就是一个独立的个体，客户端和服务端被分配到的人都数据Socket
     *    ServerSocket
     *      相当于一个服务的平台，需要从平台中分配一个具体的人员与客户端进行交流
     *
     *    单向聊天工具
     *    双向聊天工具
     *
     * UDP(User Datagram Protocol) 用户数据报协议
     *   无连接不可靠的协议，数据有可能丢包，也不能保证数据传递的顺序
     *   结构简单，传输较快，以数据报文的形式传递
     *   对数据的完整性安全性要求不高的，但是要求速度的 适合使用UDP
     */

}
